<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <title>nfs | Matrix207&#39;s Blog</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="About NFSNFS is “Network File System”.

linux find NFS version, using command nfsstat -m on client machine, 找到字符串”vers=4.0”
对比分析各个NFS版本的特点



How to use
On server:

service nfs start|stop
set ACL (Acc">
<meta property="og:type" content="article">
<meta property="og:title" content="nfs">
<meta property="og:url" content="http://yoursite.com/2015/03/25/nfs/index.html">
<meta property="og:site_name" content="Matrix207's Blog">
<meta property="og:description" content="About NFSNFS is “Network File System”.

linux find NFS version, using command nfsstat -m on client machine, 找到字符串”vers=4.0”
对比分析各个NFS版本的特点



How to use
On server:

service nfs start|stop
set ACL (Acc">
<meta property="og:updated_time" content="2016-07-17T14:33:55.000Z">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="nfs">
<meta name="twitter:description" content="About NFSNFS is “Network File System”.

linux find NFS version, using command nfsstat -m on client machine, 找到字符串”vers=4.0”
对比分析各个NFS版本的特点



How to use
On server:

service nfs start|stop
set ACL (Acc">
  
    <link rel="alternate" href="/atom.xml" title="Matrix207&#39;s Blog" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png">
  
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link rel="stylesheet" href="/css/style.css">
  

</head>

<body>
  <div id="container">
    <div id="wrap">
      <header id="header">
  <div id="banner"></div>
  <div id="header-outer" class="outer">
    <div id="header-title" class="inner">
      <h1 id="logo-wrap">
        <a href="/" id="logo">Matrix207&#39;s Blog</a>
      </h1>
      
    </div>
    <div id="header-inner" class="inner">
      <nav id="main-nav">
        <a id="main-nav-toggle" class="nav-icon"></a>
        
          <a class="main-nav-link" href="/">Home</a>
        
          <a class="main-nav-link" href="/archives">Archives</a>
        
      </nav>
      <nav id="sub-nav">
        
          <a id="nav-rss-link" class="nav-icon" href="/atom.xml" title="Flux RSS"></a>
        
        <a id="nav-search-btn" class="nav-icon" title="Rechercher"></a>
      </nav>
      <div id="search-form-wrap">
        <form action="//google.com/search" method="get" accept-charset="UTF-8" class="search-form"><input type="search" name="q" results="0" class="search-form-input" placeholder="Search"><button type="submit" class="search-form-submit">&#xF002;</button><input type="hidden" name="sitesearch" value="http://yoursite.com"></form>
      </div>
    </div>
  </div>
</header>
      <div class="outer">
        <section id="main"><article id="post-nfs" class="article article-type-post" itemscope itemprop="blogPost">
  <div class="article-meta">
    <a href="/2015/03/25/nfs/" class="article-date">
  <time datetime="2015-03-24T16:00:00.000Z" itemprop="datePublished">2015-03-25</time>
</a>
    
  <div class="article-category">
    <a class="article-category-link" href="/categories/storage/">storage</a>
  </div>

  </div>
  <div class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="article-title" itemprop="name">
      nfs
    </h1>
  

      </header>
    
    <div class="article-entry" itemprop="articleBody">
      
        <h3 id="About-NFS"><a href="#About-NFS" class="headerlink" title="About NFS"></a>About NFS</h3><p>NFS is “Network File System”.</p>
<ul>
<li>linux find NFS version, using command <code>nfsstat -m</code> on client machine, 找到字符串”vers=4.0”<ul>
<li><a href="http://network.51cto.com/art/201008/216664.htm" target="_blank" rel="external">对比分析各个NFS版本的特点</a></li>
</ul>
</li>
</ul>
<h3 id="How-to-use"><a href="#How-to-use" class="headerlink" title="How to use"></a>How to use</h3><ul>
<li><p>On server:</p>
<ul>
<li>service nfs start|stop</li>
<li>set ACL (Access Control Lists) of files and directories.<ul>
<li>setfacl -m other::— PATH</li>
<li>setfacl -m g:GROUP_NAME:rwx PATH</li>
<li>setfacl -m g:GROUP_NAME:— PATH</li>
</ul>
</li>
</ul>
</li>
<li><p>On clinet: mount nfs share disk</p>
<ul>
<li>showmount -e 172.16.130.143</li>
<li>mkdir /mnt/nfs</li>
<li>mount 172.16.130.143:/share/vdshare001 /mnt/nfs</li>
<li>ls /mnt/nfs</li>
<li>umount /mnt/nfs</li>
</ul>
</li>
<li><p>command operation:  </p>
<p>  [root@Ustor ~]# service nfs start<br>  Starting RPC svcgssd:                                      [  OK  ]<br>  Starting NFS services:                                     [  OK  ]<br>  Starting NFS quotas:                                       [  OK  ]<br>  Starting NFS mountd:                                       [  OK  ]<br>  Stopping RPC idmapd:                                       [  OK  ]<br>  Starting RPC idmapd:                                       [  OK  ]<br>  Starting NFS daemon:                                       [  OK  ]<br>  [root@Ustor ~]# service nfs status<br>  rpc.svcgssd (pid 11647) is running…<br>  rpc.mountd (pid 11657) is running…<br>  nfsd (pid 11722 11721 11720 11719 11718 11717 11716 11715) is running…<br>  rpc.rquotad (pid 11653) is running..<br>  [root@Ustor ~]# ps aux |grep nfs<br>  root   11713  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd4]<br>  root   11714  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd4_callbacks]<br>  root   11715  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd]<br>  root   11716  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd]<br>  root   11717  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd]<br>  root   11718  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd]<br>  root   11719  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd]<br>  root   11720  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd]<br>  root   11721  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd]<br>  root   11722  0.0  0.0      0     0 ?      S    23:34   0:00 [nfsd]<br>  root   11904  0.0  0.0 103240   844 pts/1  S+   23:35   0:00 grep nfs<br>  [root@Ustor ~]# netstat -apn |grep 2049<br>  tcp     0      0 0.0.0.0:2049         0.0.0.0:<em>            LISTEN      -<br>  tcp     0      0 :::2049              :::</em>                 LISTEN      -<br>  udp     0      0 0.0.0.0:2049         0.0.0.0:<em>                        -<br>  udp     0      0 :::2049              :::</em>                             -<br>  [root@Ustor ~]# service nfs stop<br>  Shutting down NFS daemon:                                  [  OK  ]<br>  Shutting down NFS mountd:                                  [  OK  ]<br>  Shutting down NFS quotas:                                  [  OK  ]<br>  Shutting down RPC svcgssd:                                 [  OK  ]</p>
</li>
<li><p>check status from /proc/fs/nfs and /proc/fs/nfsd/</p>
</li>
</ul>
<h3 id="Optimal"><a href="#Optimal" class="headerlink" title="Optimal"></a>Optimal</h3><ul>
<li><p>★★★ <strong><a href="http://blog.csdn.net/yangzhongxuan/article/details/7918884" target="_blank" rel="external">nfs的传输速度优化</a></strong></p>
<ul>
<li>设置块大小 <ul>
<li>time dd if=/dev/zero of=/testfs/testfile bs=8k count=1024 测试nfs写</li>
<li>time dd if=/testfs/testfile of=/dev/null bs=8k 测试nfs读</li>
</ul>
</li>
<li>网络传输包的大小<ul>
<li>ping -s 2048 -f hostname, try different package size</li>
<li>nfsstat －o net</li>
<li>tracepath node1/端口号</li>
<li>ifconfig eth0</li>
<li>ifconfig eth0 mtu 16436, modify MTU value</li>
<li>/proc/sys/net/ipv4/ipfrag_high_thresh和/proc/sys/net/ipv4/ipfrag_low_thresh</li>
</ul>
</li>
<li>nfs挂载的优化<ul>
<li>timeo:如果超时，客户端等待的时间，以十分之一秒计算。</li>
<li>retrans：超时尝试的次数。</li>
<li>bg：后台挂载，很有用</li>
<li>hard：如果server端没有响应，那么客户端一直尝试挂载。</li>
<li>wsize：写块大小</li>
<li>rsize：读块大小</li>
<li>intr：可以中断不成功的挂载</li>
<li>noatime：不更新文件的inode访问时间，可以提高速度。</li>
<li>async：异步读写。</li>
</ul>
</li>
<li>nfsd的个数<ul>
<li>ps -efl |grep nfsd</li>
<li>vi /etc/init.d/nfs, modify RPCNFSDCOUNT </li>
<li>service nfs restart</li>
</ul>
</li>
<li>nfsd的队列长度<ul>
<li>/proc/sys/net/core/rmem_default</li>
<li>/proc/sys/net/core/rmem_max</li>
<li>/proc/sys/net/core/wmem_default</li>
<li>/proc/sys/net/core/wmem_max</li>
<li>vi /etc/sysctl.conf</li>
</ul>
</li>
<li>mount 192.168.1.220:/mnt/nfs /mnt/nfs_t -o nolock, rsize=1024,wsize=1024,timeo=15</li>
</ul>
</li>
<li><p><strong>Linux NFS服务性能优化</strong></p>
<ul>
<li>nfsstat -rc</li>
<li><a href="http://blog.chinaunix.net/uid-24404943-id-3389539.html" target="_blank" rel="external">http://blog.chinaunix.net/uid-24404943-id-3389539.html</a></li>
<li>NFS的队列大小, modify server and client machine: (262144 = 256KB)<br>#echo 262144 &gt; /proc/sys/net/core/rmem_default<br>#echo 262144 &gt; /proc/sys/net/core/rmem_max<br>#echo 262144 &gt; /proc/sys/net/core/wmmen_default<br>#echo 262144 &gt; /proc/sys/net/core/wmmen_max  </li>
<li>[root@localhost iperf-2.0.5]# dd if=/dev/zero of=/tmp/test01.dat bs=1M count=10240<br>10240+0 records in<br>10240+0 records out<br>10737418240 bytes (11 GB) copied, 28.2585 s, 380 MB/s  </li>
<li>ping -s 2048 -f 192.16.110.80</li>
<li><a href="http://www.cnblogs.com/derekchen/archive/2013/01/17/2865207.html" target="_blank" rel="external">http://www.cnblogs.com/derekchen/archive/2013/01/17/2865207.html</a></li>
<li><a href="http://www.lichaozheng.info/2011/10/13/nfs性能优化/" target="_blank" rel="external">http://www.lichaozheng.info/2011/10/13/nfs性能优化/</a></li>
<li><a href="http://blog.csdn.net/anghlq/article/details/8532312" target="_blank" rel="external">http://blog.csdn.net/anghlq/article/details/8532312</a></li>
<li>tracepath 192.16.110.80</li>
<li>[root@localhost iperf-2.0.5]# echo “4096” &gt;/sys/class/net/enp10s0f0/mtu</li>
<li>[root@localhost iperf-2.0.5]# dd if=/dev/zero of=/tmp/test04.dat bs=1M count=10240<br>10737418240 bytes (11 GB) copied, 28.0778 s, 382 MB/s  </li>
</ul>
</li>
</ul>
<ul>
<li><p>NFS共享在使用前需要挂载（mount）。挂载时使用的参数很大程度上影响了读写的性能</p>
<ul>
<li><ol>
<li>TCP or UDP</li>
</ol>
</li>
<li><ol>
<li>rsize和wsize，每次读写的最大值</li>
</ol>
</li>
<li><ol>
<li>sync和async. sync参数会强制wsize变成4KB，这会大大降低写性能。 </li>
</ol>
</li>
</ul>
</li>
<li><p><strong>关于SAMBA和NFS是否支持断点续传</strong></p>
<ul>
<li>经过测试，得出如下结论：<ul>
<li>1.samba 不支持</li>
<li>2.nfs     支持</li>
</ul>
</li>
<li>测试环境和步骤如下：</li>
<li>服务端：<ul>
<li>1.172.16.130.200， Centos7.0</li>
</ul>
</li>
<li>Windows 客户端:<ul>
<li>1.yujl本地机器</li>
<li>2.开始-&gt;运行-&gt;\172.16.130.200</li>
<li>3.拷贝一个大的iso文件到xuni文件夹</li>
<li>4.去机房拔掉172.16.130.200机器的网线</li>
<li>5.发现本地的拷贝窗口停止传送数据</li>
<li>6.接上网线，拷贝窗口仍然没有继续传送的迹象</li>
</ul>
</li>
<li>Linux 客户端:<ul>
<li>1.我本地机器</li>
<li>2.挂载172.16.130.200的/share/sambatest目录到本地的/mnt/nfs</li>
<li>3.cp ~/Downloads/iso/CentOS-6.5-x86_64-bin-DVD1.iso /mnt/nfs/</li>
<li>4.去机房拔掉172.16.130.200机器的网线</li>
<li>5.确认本地无法连接172.16.130.200</li>
<li>6.接上网线，使用ls -l /mnt/nfs/发现iso文件的大小还继续增加</li>
<li>7.待cp完成后，md5sume计算两个iso文件，发现md5值一</li>
</ul>
</li>
<li>不支持，<a href="http://bbs.chinaunix.net/thread-4057603-1-1.html" target="_blank" rel="external">http://bbs.chinaunix.net/thread-4057603-1-1.html</a></li>
<li><a href="http://bbs.chinaunix.net/thread-4057603-1-1.html" target="_blank" rel="external">http://bbs.chinaunix.net/thread-4057603-1-1.html</a></li>
</ul>
</li>
</ul>
<h3 id="Code-analysed-kernel-version-linux-2-6-32-279-el6"><a href="#Code-analysed-kernel-version-linux-2-6-32-279-el6" class="headerlink" title="Code analysed(kernel version: linux-2.6.32-279.el6)"></a>Code analysed(kernel version: linux-2.6.32-279.el6)</h3><ul>
<li><p>NFS 文件系统主要分为三个部分：The Protocol（网络协议），Client Side（NFS 客户端）和 Server Side（NFS 服务器）</p>
<ul>
<li>NFS 客户端提供了接口，保证用户或者应用程序能像访问本地文件系统一样访问NFS 文件系统，</li>
<li>NFS 服务器作为数据源，为 NFS 客户端提供真实的文件系统服务</li>
<li>NFS 网络协议则使得 NFS 客户端和 NFS 服务器能够高效和可靠地进行通信</li>
<li>NFS 网络协议使用的是 RPC（Remote Procedure Call，远程过程调用）/XDR（External Data Representation，外部数据表示）机制</li>
</ul>
</li>
<li><p>code file list: </p>
<p>  [dennis@localhost fs]$ pwd<br>  /home/dennis/work/kernel/linux-2.6.32-279.el6/fs<br>  [dennis@localhost fs]$ ls nfs<br>  cache_lib.c      file.c           nfs2xdr.c            nfsroot.c<br>  cache_lib.h      fscache.c        nfs3acl.c            pagelist.c<br>  callback.c       fscache.h        nfs3proc.c           pnfs.c<br>  callback.h       fscache-index.c  nfs3xdr.c            pnfs_dev.c<br>  callback_proc.c  getroot.c        nfs4filelayout.c     pnfs.h<br>  callback_xdr.c   idmap.c          nfs4filelayoutdev.c  proc.c<br>  client.c         inode.c          nfs4filelayout.h     read.c<br>  delegation.c     internal.h       nfs4_fs.h            super.c<br>  delegation.h     iostat.h         nfs4namespace.c      symlink.c<br>  dir.c            Kconfig          nfs4proc.c           sysctl.c<br>  direct.c         Makefile         nfs4renewd.c         unlink.c<br>  dns_resolve.c    mount_clnt.c     nfs4state.c          write.c<br>  dns_resolve.h    namespace.c      nfs4xdr.c<br>  [dennis@localhost fs]$ ls nfsd<br>  auth.c    Makefile    nfs4callback.c  nfscache.c  nfssvc.c  xdr3.h<br>  auth.h    nfs2acl.c   nfs4idmap.c     nfsctl.c    nfsxdr.c  xdr4.h<br>  cache.h   nfs3acl.c   nfs4proc.c      nfsd.h      state.h   xdr.h<br>  export.c  nfs3proc.c  nfs4recover.c   nfsfh.c     stats.c<br>  Kconfig   nfs3xdr.c   nfs4state.c     nfsfh.h     vfs.c<br>  lockd.c   nfs4acl.c   nfs4xdr.c       nfsproc.c   vfs.h<br>  [dennis@localhost fs]$ ls nfs_common<br>  Makefile  nfsacl.c<br>  [dennis@localhost fs]$ cd ../include/linux/<br>  [dennis@localhost linux]$ ls nfs*<br>  nfs2.h      nfs4.h        nfsd_idmap.h  nfs_fs_sb.h  nfs_iostat.h  nfs_xdr.h<br>  nfs3.h      nfs4_mount.h  nfs_fs.h      nfs.h        nfs_mount.h<br>  nfs4_acl.h  nfsacl.h      nfs_fs_i.h    nfs_idmap.h  nfs_page.h</p>
<p>  nfsd:<br>  const.h  debug.h  export.h  Kbuild  nfsfh.h  stats.h  syscall.h</p>
</li>
<li><p>Client Side 源代码  </p>
<p>Client Side 的头文件在 include/linux/ 下面，C 文件在 fs/nfs 下面。</p>
<p>  dir.c/file.c/inode.c/symlink.c/unlink.c：与文件操作相关的系统调用<br>  read.c/write.c/flushd.c：文件读写<br>  mount_clnt.c/nfs_root.c：将 NFS 文件系统作为 root 目录的相关实现<br>  proc.c/nfs2xdr.c/nfs3proc.c/nfs3xdr.c：网络数据交换 </p>
</li>
</ul>
<p>与文件操作相关的系统调用都在 struct file_operations，struct inode_operations<br>这两个数据结构里面定义。文件的读操作 nfs_file_read 和写操作 nfs_file_write 被单<br>独提出来，因为文件读写性能将直接关系到文件系统的成败</p>
<ul>
<li>Server Side 源代码</li>
</ul>
<p>Server Side 的头文件在 include/linux/nfsd 下面，C 文件在 fs/nfsd 下面。</p>
<pre><code>auth.c/lockd.c/export.c/nfsctl.c/nfscache.c/nfsfh.c/stats.c：导出目录的访问管理
nfssvc.c：NFS 服务 deamon 的实现
vfs.c：将 NFS 文件系统的操作转换成具体文件系统的操作
nfsproc.c/nfsxdr.c/nfs3proc.c/nfs3xdr.c：网络数据交换
</code></pre><p>导出目录的访问管理主要解决网络文件系统实现面临的几个重要问题，包括目录导出服务，<br>外部访问的权限控制，多客户端以及客户端与服务器的文件并发操作等。 </p>
<ul>
<li><p>process number of nfsd:  </p>
</li>
<li><p>rename call stack:  </p>
<p>  client: nfs_rename -&gt;<br>  server: nfsd4_rename -&gt; nfsd_rename </p>
</li>
<li><p><strong>To be continue…</strong></p>
</li>
</ul>
<h3 id="Reference"><a href="#Reference" class="headerlink" title="Reference"></a>Reference</h3><ul>
<li><strong><a href="http://www.ibm.com/developerworks/cn/linux/l-cn-nfs/" target="_blank" rel="external">NFS文件系统源代码剖析</a></strong></li>
<li><a href="http://zohead.com/archives/nfs-rwsize/" target="_blank" rel="external">NFS读写块大小问题分析</a></li>
<li><a href="http://www.lichaozheng.info/2011/10/13/nfs性能优化/" target="_blank" rel="external">NFS性能优化手册</a></li>
</ul>

      
    </div>
    <footer class="article-footer">
      <a data-url="http://yoursite.com/2015/03/25/nfs/" data-id="ciqqpe1sn00c8nmpv9axa8ofn" class="article-share-link">Partager</a>
      
      
  <ul class="article-tag-list"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/tags/file-system/">file system</a></li></ul>

    </footer>
  </div>
  
    
<nav id="article-nav">
  
    <a href="/2015/06/06/ramcloud/" id="article-nav-newer" class="article-nav-link-wrap">
      <strong class="article-nav-caption">Récent</strong>
      <div class="article-nav-title">
        
          (no title)
        
      </div>
    </a>
  
  
    <a href="/2015/03/12/how-to-detect-the-internal-network-topology-of-company/" id="article-nav-older" class="article-nav-link-wrap">
      <strong class="article-nav-caption">Ancien</strong>
      <div class="article-nav-title">how to detect the internal network topology of company</div>
    </a>
  
</nav>

  
</article>

</section>
        
          <aside id="sidebar">
  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Catégories</h3>
    <div class="widget">
      <ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/blog/">blog</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/database/">database</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/english/">english</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/kernel/">kernel</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/language/">language</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/linux/">linux</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/math/">math</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/network/">network</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/others/">others</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/person/">person</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/program/">program</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/source/">source</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/storage/">storage</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/tools/">tools</a></li><li class="category-list-item"><a class="category-list-link" href="/categories/windows/">windows</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Mot-clés</h3>
    <div class="widget">
      <ul class="tag-list"><li class="tag-list-item"><a class="tag-list-link" href="/tags/FAQ/">FAQ</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/IRC/">IRC</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Translation/">Translation</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/android/">android</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/api/">api</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/assembly/">assembly</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/awk/">awk</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/batch/">batch</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/blog/">blog</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/book/">book</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/c/">c</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/c/">c++</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/cache/">cache</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/crash/">crash</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/database/">database</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/debug/">debug</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/dot/">dot</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/driver/">driver</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/emacs/">emacs</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/exploit/">exploit</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/file-system/">file system</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/filesystem/">filesystem</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/flowchart/">flowchart</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/gcc/">gcc</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/git/">git</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/google/">google</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/graphviz/">graphviz</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hexo/">hexo</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hosts/">hosts</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/iscsi/">iscsi</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/java/">java</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/javascript/">javascript</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/job/">job</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/json/">json</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/kernel/">kernel</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/linux/">linux</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/lisp/">lisp</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/lua/">lua</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/makefile/">makefile</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/malloc/">malloc</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/math/">math</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/maxima/">maxima</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/memory/">memory</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/memory-overflow/">memory overflow</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/mtrace/">mtrace</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/netdisk/">netdisk</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/network/">network</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/others/">others</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/pandoc/">pandoc</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/performance/">performance</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/person/">person</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/protobuf/">protobuf</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/python/">python</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/rsync/">rsync</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/sed/">sed</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/shell/">shell</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/skype/">skype</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/sms/">sms</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/source/">source</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/ssh/">ssh</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/stack/">stack</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/storage/">storage</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/study/">study</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/svn/">svn</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/sync/">sync</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/test/">test</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/time/">time</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/tools/">tools</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/valgrind/">valgrind</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/vi/">vi</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/vim/">vim</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/virtual/">virtual</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/wget/">wget</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/windows/">windows</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/wireshark/">wireshark</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/write/">write</a></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/xml/">xml</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Nuage de mot-clés</h3>
    <div class="widget tagcloud">
      <a href="/tags/FAQ/" style="font-size: 10px;">FAQ</a> <a href="/tags/IRC/" style="font-size: 10px;">IRC</a> <a href="/tags/Translation/" style="font-size: 13px;">Translation</a> <a href="/tags/android/" style="font-size: 10px;">android</a> <a href="/tags/api/" style="font-size: 10px;">api</a> <a href="/tags/assembly/" style="font-size: 10px;">assembly</a> <a href="/tags/awk/" style="font-size: 11px;">awk</a> <a href="/tags/batch/" style="font-size: 14px;">batch</a> <a href="/tags/blog/" style="font-size: 10px;">blog</a> <a href="/tags/book/" style="font-size: 10px;">book</a> <a href="/tags/c/" style="font-size: 16px;">c</a> <a href="/tags/c/" style="font-size: 19px;">c++</a> <a href="/tags/cache/" style="font-size: 10px;">cache</a> <a href="/tags/crash/" style="font-size: 10px;">crash</a> <a href="/tags/database/" style="font-size: 17px;">database</a> <a href="/tags/debug/" style="font-size: 12px;">debug</a> <a href="/tags/dot/" style="font-size: 10px;">dot</a> <a href="/tags/driver/" style="font-size: 10px;">driver</a> <a href="/tags/emacs/" style="font-size: 11px;">emacs</a> <a href="/tags/exploit/" style="font-size: 10px;">exploit</a> <a href="/tags/file-system/" style="font-size: 10px;">file system</a> <a href="/tags/filesystem/" style="font-size: 12px;">filesystem</a> <a href="/tags/flowchart/" style="font-size: 10px;">flowchart</a> <a href="/tags/gcc/" style="font-size: 10px;">gcc</a> <a href="/tags/git/" style="font-size: 12px;">git</a> <a href="/tags/google/" style="font-size: 11px;">google</a> <a href="/tags/graphviz/" style="font-size: 11px;">graphviz</a> <a href="/tags/hexo/" style="font-size: 10px;">hexo</a> <a href="/tags/hosts/" style="font-size: 10px;">hosts</a> <a href="/tags/iscsi/" style="font-size: 14px;">iscsi</a> <a href="/tags/java/" style="font-size: 10px;">java</a> <a href="/tags/javascript/" style="font-size: 10px;">javascript</a> <a href="/tags/job/" style="font-size: 10px;">job</a> <a href="/tags/json/" style="font-size: 10px;">json</a> <a href="/tags/kernel/" style="font-size: 14px;">kernel</a> <a href="/tags/linux/" style="font-size: 14px;">linux</a> <a href="/tags/lisp/" style="font-size: 10px;">lisp</a> <a href="/tags/lua/" style="font-size: 10px;">lua</a> <a href="/tags/makefile/" style="font-size: 10px;">makefile</a> <a href="/tags/malloc/" style="font-size: 10px;">malloc</a> <a href="/tags/math/" style="font-size: 11px;">math</a> <a href="/tags/maxima/" style="font-size: 10px;">maxima</a> <a href="/tags/memory/" style="font-size: 11px;">memory</a> <a href="/tags/memory-overflow/" style="font-size: 10px;">memory overflow</a> <a href="/tags/mtrace/" style="font-size: 10px;">mtrace</a> <a href="/tags/netdisk/" style="font-size: 10px;">netdisk</a> <a href="/tags/network/" style="font-size: 20px;">network</a> <a href="/tags/others/" style="font-size: 18px;">others</a> <a href="/tags/pandoc/" style="font-size: 10px;">pandoc</a> <a href="/tags/performance/" style="font-size: 16px;">performance</a> <a href="/tags/person/" style="font-size: 11px;">person</a> <a href="/tags/protobuf/" style="font-size: 11px;">protobuf</a> <a href="/tags/python/" style="font-size: 10px;">python</a> <a href="/tags/rsync/" style="font-size: 10px;">rsync</a> <a href="/tags/sed/" style="font-size: 11px;">sed</a> <a href="/tags/shell/" style="font-size: 15px;">shell</a> <a href="/tags/skype/" style="font-size: 11px;">skype</a> <a href="/tags/sms/" style="font-size: 10px;">sms</a> <a href="/tags/source/" style="font-size: 11px;">source</a> <a href="/tags/ssh/" style="font-size: 10px;">ssh</a> <a href="/tags/stack/" style="font-size: 10px;">stack</a> <a href="/tags/storage/" style="font-size: 15px;">storage</a> <a href="/tags/study/" style="font-size: 10px;">study</a> <a href="/tags/svn/" style="font-size: 11px;">svn</a> <a href="/tags/sync/" style="font-size: 10px;">sync</a> <a href="/tags/test/" style="font-size: 11px;">test</a> <a href="/tags/time/" style="font-size: 10px;">time</a> <a href="/tags/tools/" style="font-size: 16px;">tools</a> <a href="/tags/valgrind/" style="font-size: 10px;">valgrind</a> <a href="/tags/vi/" style="font-size: 10px;">vi</a> <a href="/tags/vim/" style="font-size: 14px;">vim</a> <a href="/tags/virtual/" style="font-size: 11px;">virtual</a> <a href="/tags/wget/" style="font-size: 10px;">wget</a> <a href="/tags/windows/" style="font-size: 11px;">windows</a> <a href="/tags/wireshark/" style="font-size: 10px;">wireshark</a> <a href="/tags/write/" style="font-size: 13px;">write</a> <a href="/tags/xml/" style="font-size: 10px;">xml</a>
    </div>
  </div>

  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Archives</h3>
    <div class="widget">
      <ul class="archive-list"><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/07/">July 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/04/">April 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/03/">March 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/02/">February 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2016/01/">January 2016</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/11/">November 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/10/">October 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/09/">September 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/08/">August 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/07/">July 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/06/">June 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/03/">March 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/02/">February 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2015/01/">January 2015</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/12/">December 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/11/">November 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/09/">September 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/08/">August 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/07/">July 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/06/">June 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/05/">May 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/04/">April 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2014/03/">March 2014</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/11/">November 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/10/">October 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/09/">September 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/08/">August 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/07/">July 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/06/">June 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/05/">May 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/04/">April 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/03/">March 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/02/">February 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2013/01/">January 2013</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2012/12/">December 2012</a></li><li class="archive-list-item"><a class="archive-list-link" href="/archives/2012/09/">September 2012</a></li></ul>
    </div>
  </div>


  
    
  <div class="widget-wrap">
    <h3 class="widget-title">Articles récents</h3>
    <div class="widget">
      <ul>
        
          <li>
            <a href="/2016/07/17/how-to-implement-malloc/">如何实现一个malloc</a>
          </li>
        
          <li>
            <a href="/2016/07/17/study-grep-more/">grep工作原理</a>
          </li>
        
          <li>
            <a href="/2016/07/17/2016-04-13-malloc/">malloc</a>
          </li>
        
          <li>
            <a href="/2016/04/27/include-what-you-use/">使用IWYU整理头文件引用</a>
          </li>
        
          <li>
            <a href="/2016/04/24/understand-gcc-assembly-output/">understand gcc assembly output</a>
          </li>
        
      </ul>
    </div>
  </div>

  
</aside>
        
      </div>
      <footer id="footer">
  
  <div class="outer">
    <div id="footer-info" class="inner">
      &copy; 2016 Matrix207<br>
      Propulsé by <a href="http://hexo.io/" target="_blank">Hexo</a>
    </div>
  </div>
</footer>
    </div>
    <nav id="mobile-nav">
  
    <a href="/" class="mobile-nav-link">Home</a>
  
    <a href="/archives" class="mobile-nav-link">Archives</a>
  
</nav>
    

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>


  <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  <script src="/fancybox/jquery.fancybox.pack.js"></script>


<script src="/js/script.js"></script>

  </div>
</body>
</html>